package com.link_with_health.service;

import com.link_with_health.exception.BaseException;
import com.link_with_health.model.PatientEntity;

import java.util.List;

public interface PatientService {

    /**
     * 通过患者id获取患者信息
     * @param patientId 患者id
     * @return  患者信息
     * @throws BaseException 异常
     */
    PatientEntity getPatientByPatientId(Long patientId) throws BaseException;

    /**
     * 通过用户id获取患者信息
     * @param userId 用户id
     * @return  患者信息
     * @throws BaseException 异常
     */
    List<PatientEntity> getPatientByUserId(Long userId) throws BaseException;

    /**
     * 通过用户名字换取患者信息 支持模糊查询
     * @param username 用户名
     * @return  患者信息
     * @throws BaseException 异常
     */
    List<PatientEntity> getPatientByUserName(String username) throws BaseException;


    /**
     * 通过真实姓名获取患者信息 支持模糊查询
     * @param realName  真实姓名
     * @return  患者信息
     * @throws BaseException 异常
     */
    List<PatientEntity> getPatientByRealName(String realName) throws BaseException;

    /**
     * 获取所有患者信息
     * @return  患者信息
     * @throws BaseException 异常
     */
    List<PatientEntity> getAllPatient() throws BaseException;

    /**
     * 添加患者信息
     * @param patient 患者信息
     * @return  改动数量
     * @throws BaseException 异常
     */
    int addPatient(PatientEntity patient) throws BaseException;

    /**
     * 修改患者信息
     * @param patient 患者信息
     * @return 改动数量
     * @throws BaseException 异常
     */
    int changePatient(PatientEntity patient) throws BaseException;

    /**
     * 删除患者信息
     * @param patientId 患者id
     * @return  改动数量
     * @throws BaseException 异常
     */
    int deletePatient(Long patientId) throws BaseException;

}
